// Formata campos para Data //
// Recebe o campo que deve ser validado e o evento que o ativou
function formataData(campo, evento) {
  switch(evento) {
    case 'blur'   :
      if (campo.value == '') {
        //campo.value = '__/__/____';
      } else if (campo.value.length < 8) {
        //campo.value = '__/__/____'
        campo.value = ''
        alert('Data invalida!')
      }
      if (campo.value.length == 8) {
        decada = '20';
        if (parseInt(campo.value.substr(6, 2)) > 30) {
            decada = '19';
        }
        campo.value = campo.value.substr(0, 6) + decada + campo.value.substr(6, 2)
      }
      break;
    case 'focus'  :
      if (campo.value == '__/__/____') {
        campo.value = '';
      }
      break;
    case 'key'    :
      var c = campo.value;
      c = limpaAlfa(c);
      c = c.replace(/(^\d{2})/,"$1\/");
      c = c.replace(/(\/\d{2})/,"$1\/");
      campo.value = c.substr(0,10);
      /**
      if ((campo.value.length == 2) || (campo.value.length == 5)) {
        campo.value = campo.value + '/';
      }
      **/
      break;
    case 'change' :
      if (campo.value == '') {
        //campo.value = '__/__/____';
      } else if (campo.value.length < 8) {
        //campo.value = '__/__/____'
        campo.value = ''
        alert('Data invalida!')
      }
      if (campo.value.length == 8) {
        decada = '20';
        if (parseInt(campo.value.substr(6, 2)) > 30) {
            decada = '19';
        }
        campo.value = campo.value.substr(0, 6) + decada + campo.value.substr(6, 2)
      }
      break;
  }
}
//////////////////////////

// Validação de digitos //
function validaNumero(campo) {
  campo.value = limpaAlfa(campo.value);
}
//////////////////////////

// Formata campos Monetario //
function formataMoeda(campo, evento) {
  var valor = '';
  var numeros;
  var pos;
  
  switch(evento) {
    case 'blur'   :
      if ((campo.value == '') || campo.value == '0,0') {
        campo.value = '0,00';
      }
      break;
    case 'focus'  :
      if (campo.value == '0,00') {
        campo.value = '0,0';
      }
      break;
    case 'key':
      campo.value = limpaAlfa(campo.value);
      if(campo.value != '') campo.value = parseInt(campo.value, 10);
      
      if(campo.value.length == 1) {
        campo.value = '0,0'+campo.value;
      } else if(campo.value.length == 2) {
        campo.value = '0,'+campo.value;
      } else if(campo.value.length >= 3){
        numeros = campo.value;
        valor = "," + numeros.substr(numeros.length - 2, 2);
        numeros = numeros.substr(0, numeros.length - 2);
        
        while(numeros != '') {
          pos = numeros.length - 3;
          if(pos < 0) pos = 0;
          valor = numeros.substr(pos, 3) + valor;
          numeros = numeros.substr(0, pos);
          if(numeros != '') {
            valor = "."+valor;
          }
        }
        
        campo.value = valor;
      }
      
      break;
  }
}
//////////////////////////////

// Inclui caracteres a esquerda do campo //
function padLeft(campo,caracter,qtde) {
  var aux = "";
  for(var x = 0; x < (qtde - campo.value.length); x++) {
    aux += "" + caracter;
  }
  campo.value = aux + "" + campo.value;
}
//////////////////////////////

// Inclui caracteres a direita do campo //
function padRight(campo,caracter,qtde) {
  var aux = "";
  for(var x = 0; x < (qtde - campo.value.length); x++) {
    aux += "" + caracter;
  }
  campo.value = campo.value + "" + aux;
}
//////////////////////////////

function padRight2(valor,caracter,qtde) {
  var obj = new Object();
  obj.value = valor;
  padRight(obj,caracter,qtde);
  return obj.value;
}
function padLeft2(valor,caracter,qtde) {
  var obj = new Object();
  obj.value = valor;
  padLeft(obj,caracter,qtde);
  return obj.value;
}

// verifica se a tecla precionada foi o enter //
function capturaEnter(evt) {
    return (evt.keyCode == 13) ? true : false;
}
//////////////////////////////


////////   valida data    /////////
function validaData(campo, verAno, msg, alerta) {
  /**  DD/MM/AAAA   **/
  /**  0123456789   **/
  var dia, mes, ano;
  var diasMes = new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
  var hoje = new Date();
  
  if(alerta == null) alerta = true;

  if(campo.value != '') {
    dia = campo.value.substring(0,2);
    mes = campo.value.substring(3,5);
    ano = campo.value.substring(6,10);
    
    if((isNaN(ano)) || (ano == 0) || (verAno && (ano > hoje.getFullYear()))) {
      msg = 'Ano invalido!\n'+ano;
      if(alerta) alert(msg);
      campo.value = "";
      return false;
    }
    
    if((isNaN(mes)) || (mes > 12) || (mes == 0)) {
      msg = 'Mes invalido!\n'+mes;
      if(alerta) alert(msg);
      campo.value = "";
      return false;
    }
    
    if((isNaN(dia)) || (dia > diasMes[mes-1]) || dia == 0) {
      msg = 'Dia invalido!\n'+dia
      if(alerta) alert(msg);
      campo.value = "";
      return false;
    }
  } else {
    msg = 'Data invalida!';
    if(alerta) alert(msg);
    campo.value = "";
    return false;
  }
  
  return true;
}
//////////////////////////////

//// validação de endereço de e-mail
function validaemail(email) {
  var objRegExp=/^([A-Za-z0-9\.\-]*)([\w\.]*)@([A-Za-z0-9\.\-]*)\.(([A-Za-z]{3}\.[A-Za-z]{2}$)|([A-Za-z]{3}$)|([a-z]{2}$))/i;
  return objRegExp.test(email);
}
///////////////////////////////////////

function getDataHoje() {
  dt_hoje = new Date();
  dia = dt_hoje.getDate() + "";
  dia = (dia.length == 1) ? "0"+dia : dia;
  mes = (dt_hoje.getMonth() + 1) + "";
  mes = (mes.length == 1) ? "0"+mes : mes;
  ano = dt_hoje.getFullYear();
  
  return dia + '/' + mes + '/' + ano;
}

function mascaraObjetoData(objData) {
  return ((((objData.getDate()+"").length == 1)? "0"+objData.getDate():objData.getDate()))+'/'+
         ((((objData.getMonth() + 1) + "").length == 1) ? "0"+(objData.getMonth()+1):(objData.getMonth()+1))+"/"+
         objData.getFullYear();
}

function limpaAlfa(valor) {
    return valor.replace(/\D/g,"")
}

// CSS Browser Selector   v0.2.5
// Documentation:         http://rafael.adm.br/css_browser_selector
// License:               http://creativecommons.org/licenses/by/2.5/
// Author:                Rafael Lima (http://rafael.adm.br)
// Contributors:          http://rafael.adm.br/css_browser_selector#contributors
// Incluido verificação para o Chrome
function identificaBrowser() {
	var 
		ua=navigator.userAgent.toLowerCase(),
		is=function(t){ return ua.indexOf(t) != -1; },
		h=document.getElementsByTagName('html')[0],
		b=(!(/opera|webtv/i.test(ua))&&/msie (\d)/.test(ua))?('ie'+RegExp.$1):is('gecko/')? 'gecko':is('chrome/')? 'Chrome':is('opera/9')?'opera9':/opera (\d)/.test(ua)?'opera'+RegExp.$1:is('konqueror')?'konqueror':is('applewebkit/')?'safari':is('mozilla/')?'gecko':'',
		os=(is('x11')||is('linux'))?' linux':is('mac')?' mac':is('win')?' win':'';
	//var c=b+os+' js';
	//h.className += h.className?' '+c:c;
	return b;
}

//////////////////////////////
// Autor    : Bret Taylor - http://finiteloop.org/~btaylor/
// Original : http://ajaxcookbook.org/disable-text-selection/
function disableSelection(element) {
  element.onselectstart = function() {
    return false;
  }
  element.unselectable = "on";
  element.style.MozUserSelect = "none";
  element.style.cursor = "default";
}

var janAlert = null;
function jAlert(msg) {
  var t, l, fundo;
  t = 150;
  l = (screen.width - 350) / 2;
  if(!janAlert) {
    fundo = document.createElement("DIV");
    fundo.id = "janAlertFundo";
    fundo.className = "janela";
    fundo.style.top = "0px";
    fundo.style.left = "0px";
    fundo.style.width = screen.width+"px";
    fundo.style.height = screen.height+"px";
    fundo.style.background = "url('../imagens/semitransparente.gif')";
    //fundo.style.opacity = "0.5";
    //fundo.style.backgroundColor = "#CCC";
    document.getElementsByTagName('body')[0].appendChild(fundo);
    janAlert = new Janela("janAlert", document.title, msg);
    janAlert.setPosition(t,l);
    janAlert.setHeight(100);
    janAlert.iconFechar.onclick = function() {
      janAlert.destroy();
      document.getElementsByTagName('body')[0].removeChild(document.getElementById('janAlertFundo'));
      janAlert = null;
    }
    return janAlert;
  }
  //alert(msg)
}


